package  {
	/**
	 * ...
	 * @author wibrst@qq.com
	 */
	public class Singleton{
		
		static private var _si:Singleton;
		
		static public /*synchronized*/ function get si():Singleton {
			if ( _si == null ) {
				_si = new Singleton;
			}
			return _si;
		}
		
		//Error: A constructor can only be declared public.
		/*private*/public function Singleton():void {
			trace( this, "[constructor]" );
		}
		
		public function sayHi():void {
			trace( this, "hi!" );
		}
		
		public function saySth():void {
			trace( this, "bla bla bla bla ..." );
		}
		
	}

}